home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_perl.idb / usr / freeware / catman / u_man / cat1 / perldelta.Z / perldelta
Encoding:
Text File  |  1998-10-28  |  50.5 KB  |  1,321 lines

  1.  
  2.  
  3.  
  4.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.       perldelta - what's new for perl5.005
  10.  
  11.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  12.       This document    describes differences between the 5.004
  13.       release and this one.
  14.  
  15.      AAAAbbbboooouuuutttt tttthhhheeee nnnneeeewwww vvvveeeerrrrssssiiiioooonnnniiiinnnngggg ssssyyyysssstttteeeemmmm
  16.       Perl is now developed    on two tracks: a maintenance track
  17.       that makes small, safe updates to released production
  18.       versions with    emphasis on compatibility; and a development
  19.       track    that pursues more aggressive evolution.     Maintenance
  20.       releases (which should be considered production quality)
  21.       have subversion numbers that run from    1 to 49, and
  22.       development releases (which should be    considered "alpha"
  23.       quality) run from 50 to 99.
  24.  
  25.       Perl 5.005 is    the combined product of    the new    dual-track
  26.       development scheme.
  27.  
  28.      IIIInnnnccccoooommmmppppaaaattttiiiibbbblllleeee CCCChhhhaaaannnnggggeeeessss
  29.       WWWWAAAARRRRNNNNIIIINNNNGGGG::::  TTTThhhhiiiissss vvvveeeerrrrssssiiiioooonnnn iiiissss nnnnooootttt    bbbbiiiinnnnaaaarrrryyyy ccccoooommmmppppaaaattttiiiibbbblllleeee wwwwiiiitttthhhh PPPPeeeerrrrllll
  30.       5555....000000004444....
  31.  
  32.       Starting with    Perl 5.004_50 there were many deep and far-
  33.       reaching changes to the language internals.  If you have
  34.       dynamically loaded extensions    that you built under perl
  35.       5.003    or 5.004, you can continue to use them with 5.004, but
  36.       you will need    to rebuild and reinstall those extensions to
  37.       use them 5.005.  See the _I_N_S_T_A_L_L manpage for detailed
  38.       instructions on how to upgrade.
  39.  
  40.       DDDDeeeeffffaaaauuuulllltttt iiiinnnnssssttttaaaallllllllaaaattttiiiioooonnnn ssssttttrrrruuuuccccttttuuuurrrreeee hhhhaaaassss cccchhhhaaaannnnggggeeeedddd
  41.  
  42.       The new Configure defaults are designed to allow a smooth
  43.       upgrade from 5.004 to    5.005, but you should read the _I_N_S_T_A_L_L
  44.       manpage for a    detailed discussion of the changes in order to
  45.       adapt    them to    your system.
  46.  
  47.       PPPPeeeerrrrllll SSSSoooouuuurrrrcccceeee CCCCoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy
  48.  
  49.       When none of the experimental    features are enabled, there
  50.       should be very few user-visible Perl source compatibility
  51.       issues.
  52.  
  53.       If threads are enabled, then some caveats apply. @_ and $_
  54.       become lexical variables.  The effect    of this    should be
  55.       largely transparent to the user, but there are some boundary
  56.       conditions under which user will need    to be aware of the
  57.       issues.  For example,    local(@_) results in a "Can't localize
  58.       lexical variable @_ ..." message.  This may be enabled in a
  59.       future version.
  60.  
  61.  
  62.  
  63.      Page 1                        (printed 10/23/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  71.  
  72.  
  73.  
  74.       Some new keywords have been introduced.  These are generally
  75.       expected to have very    little impact on compatibility.     See
  76.       the section on _N_e_w _I_N_I_T keyword, the section on _N_e_w _l_o_c_k
  77.       keyword, and the section on _N_e_w _q_r// operator.
  78.  
  79.       Certain barewords are    now reserved.  Use of these will
  80.       provoke a warning if you have    asked for them with the    -w
  81.       switch.  See the _o_u_r manpage is now a    reserved word.
  82.  
  83.       CCCC SSSSoooouuuurrrrcccceeee CCCCoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy
  84.  
  85.       There    have been a large number of changes in the internals
  86.       to support the new features in this release.
  87.  
  88.       Core sources now require ANSI    C compiler
  89.           An ANSI C    compiler is now    rrrreeeeqqqquuuuiiiirrrreeeedddd to build perl.     See
  90.           _I_N_S_T_A_L_L.
  91.  
  92.      prefix
  93.       All Perl global variables must now be    referenced with    an explicit
  94.           All Perl global variables    that are visible for use by
  95.           extensions now have a PL_    prefix.     New extensions    should
  96.           not refer    to perl    globals    by their unqualified names.
  97.           To preserve sanity, we provide limited backward
  98.           compatibility for    globals    that are being widely used
  99.           like sv_undef and    na (which should now be    written    as
  100.           PL_sv_undef, PL_na etc.)
  101.  
  102.           If you find that your XS extension does not compile
  103.           anymore because a    perl global is not visible, try    adding
  104.           a    PL_ prefix to the global and rebuild.
  105.  
  106.           It is strongly recommended that all functions in the
  107.           Perl API that don't begin    with perl be referenced    with a
  108.           Perl_ prefix.  The bare function names without the Perl_
  109.           prefix are supported with    macros,    but this support may
  110.           cease in a future    release.
  111.  
  112.           See the section on _A_P_I _L_I_S_T_I_N_G in    the _p_e_r_l_g_u_t_s manpage.
  113.  
  114.       Enabling threads has source compatibility issues
  115.           Perl built with threading    enabled    requires extensions to
  116.           use the new dTHR macro to    initialize the handle to
  117.           access per-thread    data.  If you see a compiler error
  118.           that talks about the variable thr    not being declared
  119.           (when building a module that has XS code),  you need to
  120.           add dTHR;    at the beginning of the    block that elicited
  121.           the error.
  122.  
  123.           The API function perl_get_sv("@",FALSE) should be    used
  124.           instead of directly accessing perl globals as
  125.           GvSV(errgv).  The    API call is backward compatible    with
  126.  
  127.  
  128.  
  129.      Page 2                        (printed 10/23/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  137.  
  138.  
  139.  
  140.           existing perls and provides source compatibility with
  141.           threading    is enabled.
  142.  
  143.           See the section on _A_P_I _C_h_a_n_g_e_s _f_o_r _m_o_r_e _i_n_f_o_r_m_a_t_i_o_n.
  144.  
  145.       BBBBiiiinnnnaaaarrrryyyy CCCCoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy
  146.  
  147.       This version is NOT binary compatible    with older versions.
  148.       All extensions will need to be recompiled.  Further binaries
  149.       built    with threads enabled are incompatible with binaries
  150.       built    without.  This should largely be transparent to    the
  151.       user,    as all binary incompatible configurations have their
  152.       own unique architecture name,    and extension binaries get
  153.       installed at unique locations.  This allows coexistence of
  154.       several configurations in the    same directory hierarchy.  See
  155.       _I_N_S_T_A_L_L.
  156.  
  157.       SSSSeeeeccccuuuurrrriiiittttyyyy ffffiiiixxxxeeeessss mmmmaaaayyyy aaaaffffffffeeeecccctttt ccccoooommmmppppaaaattttiiiibbbbiiiilllliiiittttyyyy
  158.  
  159.       A few    taint leaks and    taint omissions    have been corrected.
  160.       This may lead    to "failure" of    scripts    that used to work with
  161.       older    versions.  Compiling with -DINCOMPLETE_TAINTS provides
  162.       a perl with minimal amounts of changes to the    tainting
  163.       behavior.  But note that the resulting perl will have    known
  164.       insecurities.
  165.  
  166.       Oneliners with the -e    switch do not create temporary files
  167.       anymore.
  168.  
  169.       RRRReeeellllaaaaxxxxeeeedddd nnnneeeewwww mmmmaaaannnnddddaaaattttoooorrrryyyy    wwwwaaaarrrrnnnniiiinnnnggggssss iiiinnnnttttrrrroooodddduuuucccceeeedddd iiiinnnn 5555....000000004444
  170.  
  171.       Many new warnings that were introduced in 5.004 have been
  172.       made optional.  Some of these    warnings are still present,
  173.       but perl's new features make them less often a problem.  See
  174.       the section on _N_e_w _D_i_a_g_n_o_s_t_i_c_s.
  175.  
  176.       LLLLiiiicccceeeennnnssssiiiinnnngggg
  177.  
  178.       Perl has a new Social    Contract for contributors.  See
  179.       _P_o_r_t_i_n_g/_C_o_n_t_r_a_c_t.
  180.  
  181.       The license included in much of the Perl documentation has
  182.       changed.  Most of the    Perl documentation was previously
  183.       under    the implicit GNU General Public    License    or the
  184.       Artistic License (at the user's choice).  Now    much of    the
  185.       documentation    unambigously states the    terms under which it
  186.       may be distributed.  Those terms are in general much less
  187.       restrictive than the GNU GPL.     See the _p_e_r_l manpage and the
  188.       individual perl man pages listed therein.
  189.  
  190.      CCCCoooorrrreeee CCCChhhhaaaannnnggggeeeessss
  191.  
  192.  
  193.  
  194.  
  195.      Page 3                        (printed 10/23/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  203.  
  204.  
  205.  
  206.       TTTThhhhrrrreeeeaaaaddddssss
  207.  
  208.       WARNING: Threading is    considered an eeeexxxxppppeeeerrrriiiimmmmeeeennnnttttaaaallll feature.
  209.       Details of the implementation    may change without notice.
  210.       There    are known limitations and some bugs.  These are
  211.       expected to be fixed in future versions.
  212.  
  213.       See the _R_E_A_D_M_E._t_h_r_e_a_d_s manpage.
  214.  
  215.       CCCCoooommmmppppiiiilllleeeerrrr
  216.  
  217.       WARNING: The Compiler    and related tools are considered
  218.       eeeexxxxppppeeeerrrriiiimmmmeeeennnnttttaaaallll.     Features may change without notice, and there
  219.       are known limitations    and bugs.  Since the compiler is fully
  220.       external to perl, the    default    configuration will build and
  221.       install it.
  222.  
  223.       The Compiler produces    three different    types of
  224.       transformations of a perl program.  The C backend generates
  225.       C code that captures perl's state just before    execution
  226.       begins.  It eliminates the compile-time overheads of the
  227.       regular perl interpreter, but    the run-time performance
  228.       remains comparatively    the same.  The CC backend generates
  229.       optimized C code equivalent to the code path at run-time.
  230.       The CC backend has greater potential for big optimizations,
  231.       but only a few optimizations are implemented currently.  The
  232.       Bytecode backend generates a platform    independent bytecode
  233.       representation of the    interpreter's state just before
  234.       execution.  Thus, the    Bytecode back end also eliminates much
  235.       of the compilation overhead of the interpreter.
  236.  
  237.       The compiler comes with several valuable utilities.
  238.  
  239.       B::Lint is an    experimental module to detect and warn about
  240.       suspicious code, especially the cases    that the -w switch
  241.       does not detect.
  242.  
  243.       B::Deparse can be used to demystify perl code, and
  244.       understand how perl optimizes    certain    constructs.
  245.  
  246.       B::Xref generates cross reference reports of all definition
  247.       and use of variables,    subroutines and    formats    in a program.
  248.  
  249.       B::Showlex show the lexical variables    used by    a subroutine
  250.       or file at a glance.
  251.  
  252.       perlcc is a simple frontend for compiling perl.
  253.  
  254.       See ext/B/README, the    section    on _B, and the respective
  255.       compiler modules.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                        (printed 10/23/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  269.  
  270.  
  271.  
  272.       RRRReeeegggguuuullllaaaarrrr EEEExxxxpppprrrreeeessssssssiiiioooonnnnssss
  273.  
  274.       Perl's regular expression engine has been seriously
  275.       overhauled, and many new constructs are supported.  Several
  276.       bugs have been fixed.
  277.  
  278.       Here is an itemized summary:
  279.  
  280.       Many new and improved    optimizations
  281.           Changes in the RE    engine:
  282.  
  283.               Unneeded nodes removed;
  284.               Substrings merged    together;
  285.               New types    of nodes to process (SUBEXPR)* and similar expressions
  286.               quickly, used    if the SUBEXPR has no side effects and matches
  287.               strings of the same length;
  288.               Better optimizations by lookup for constant substrings;
  289.               Better search for    constants substrings anchored by $ ;
  290.  
  291.           Changes in Perl code using RE engine:
  292.  
  293.               More optimizations to s/longer/short/;
  294.               study() was not working;
  295.               /blah/ may be optimized to an analogue of    index()    if $& $` $' not    seen;
  296.               Unneeded copying of matched-against string removed;
  297.               Only matched part    of the string is copying if $` $' were not seen;
  298.  
  299.  
  300.       Many bug fixes
  301.           Note that    only the major bug fixes are listed here.  See
  302.           _C_h_a_n_g_e_s for others.
  303.  
  304.               Backtracking might not restore start of $3.
  305.               No feedback if max count for * or    + on "complex" subexpression
  306.               was reached, similarly (but at compile time) for {3,34567}
  307.               Primitive    restrictions on    max count introduced to    decrease a
  308.               possibility of a segfault;
  309.               (ZERO-LENGTH)* could segfault;
  310.               (ZERO-LENGTH)* was prohibited;
  311.               Long REs were not    allowed;
  312.               /RE/g could skip matches at the same position after a
  313.             zero-length match;
  314.  
  315.  
  316.       New regular expression constructs
  317.           The following new    syntax elements    are supported:
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                        (printed 10/23/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  335.  
  336.  
  337.  
  338.               (?<=RE)
  339.               (?<!RE)
  340.               (?{ CODE })
  341.               (?i-x)
  342.               (?i:RE)
  343.               (?(COND)YES_RE|NO_RE)
  344.               (?>RE)
  345.               \z
  346.  
  347.  
  348.       New operator for precompiled regular expressions
  349.           See the section on _N_e_w _q_r// operator.
  350.  
  351.       Other    improvements
  352.  
  353.               Better debugging output (possibly    with colors),
  354.               even from non-debugging Perl;
  355.               RE engine    code now looks like C, not like    assembler;
  356.               Behaviour    of RE modifiable by `use re' directive;
  357.               Improved documentation;
  358.               Test suite significantly extended;
  359.               Syntax [:^upper:]    etc., reserved inside character    classes;
  360.  
  361.  
  362.       Incompatible changes
  363.  
  364.               (?i) localized inside enclosing group;
  365.               $( is not    interpolated into RE any more;
  366.               /RE/g may    match at the same position (with non-zero length)
  367.               after    a zero-length match (bug fix).
  368.  
  369.  
  370.       See the _p_e_r_l_r_e manpage and the _p_e_r_l_o_p    manpage.
  371.  
  372.       IIIImmmmpppprrrroooovvvveeeedddd _m_a_l_l_o_c()
  373.  
  374.       See banner at    the beginning of malloc.c for details.
  375.  
  376.       QQQQuuuuiiiicccckkkkssssoooorrrrtttt iiiissss iiiinnnntttteeeerrrrnnnnaaaallllllllyyyy iiiimmmmpppplllleeeemmmmeeeennnntttteeeedddd
  377.  
  378.       Perl now contains its    own highly optimized _q_s_o_r_t() routine.
  379.       The new _q_s_o_r_t() is resistant to inconsistent comparison
  380.       functions, so    Perl's sort() will not provoke coredumps any
  381.       more when given poorly written sort subroutines.  (Some C
  382.       library qsort()s that    were being used    before used to have
  383.       this problem.)  In our testing, the new qsort() required the
  384.       minimal number of pair-wise compares on average, among all
  385.       known    qsort()    implementations.
  386.  
  387.       See perlfunc/sort.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.      Page 6                        (printed 10/23/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  401.  
  402.  
  403.  
  404.       RRRReeeelllliiiiaaaabbbblllleeee ssssiiiiggggnnnnaaaallllssss
  405.  
  406.       Perl's signal    handling is susceptible    to random crashes,
  407.       because signals arrive asynchronously, and the Perl runtime
  408.       is not reentrant at arbitrary    times.
  409.  
  410.       However, one experimental implementation of reliable signals
  411.       is available when threads are    enabled.  See Thread::Signal.
  412.       Also see _I_N_S_T_A_L_L for how to build a Perl capable of threads.
  413.  
  414.       RRRReeeelllliiiiaaaabbbblllleeee ssssttttaaaacccckkkk ppppooooiiiinnnntttteeeerrrrssss
  415.  
  416.       The internals    now reallocate the perl    stack only at
  417.       predictable times.  In particular, magic calls never trigger
  418.       reallocations    of the stack, because all reentrancy of    the
  419.       runtime is handled using a "stack of stacks".     This should
  420.       improve reliability of cached    stack pointers in the
  421.       internals and    in XSUBs.
  422.  
  423.       MMMMoooorrrreeee ggggeeeennnneeeerrrroooouuuussss    ttttrrrreeeeaaaattttmmmmeeeennnntttt ooooffff ccccaaaarrrrrrrriiiiaaaaggggeeee rrrreeeettttuuuurrrrnnnnssss
  424.  
  425.       Perl used to complain    if it encountered literal carriage
  426.       returns in scripts.  Now they    are mostly treated like
  427.       whitespace within program text.  Inside string literals and
  428.       here documents, literal carriage returns are ignored if they
  429.       occur    paired with newlines, or get interpreted as newlines
  430.       if they stand    alone.    This behavior means that literal
  431.       carriage returns in files should be avoided.    You can    get
  432.       the older, more compatible (but less generous) behavior by
  433.       defining the preprocessor symbol PERL_STRICT_CR when
  434.       building perl.  Of course, all this has nothing whatever to
  435.       do with how escapes like \r are handled within strings.
  436.  
  437.       Note that this doesn't somehow magically allow you to    keep
  438.       all text files in DOS    format.     The generous treatment    only
  439.       applies to files that    perl itself parses.  If    your C
  440.       compiler doesn't allow carriage returns in files, you    may
  441.       still    be unable to build modules that    need a C compiler.
  442.  
  443.       MMMMeeeemmmmoooorrrryyyy lllleeeeaaaakkkkssss
  444.  
  445.       substr, pos and vec don't leak memory    anymore    when used in
  446.       lvalue context.  Many    small leaks that impacted applications
  447.       that embed multiple interpreters have    been fixed.
  448.  
  449.       BBBBeeeetttttttteeeerrrr ssssuuuuppppppppoooorrrrtttt ffffoooorrrr mmmmuuuullllttttiiiipppplllleeee iiiinnnntttteeeerrrrpppprrrreeeetttteeeerrrrssss
  450.  
  451.       The build-time option    -DMULTIPLICITY has had many of the
  452.       details reworked.  Some previously global variables that
  453.       should have been per-interpreter now are.  With care,    this
  454.       allows interpreters to call each other.  See the PerlInterp
  455.       extension on CPAN.
  456.  
  457.  
  458.  
  459.      Page 7                        (printed 10/23/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  467.  
  468.  
  469.  
  470.       BBBBeeeehhhhaaaavvvviiiioooorrrr ooooffff _l_o_c_a_l() on array and hash    elements is now    well-
  471.       defined
  472.  
  473.       See the section on _T_e_m_p_o_r_a_r_y _V_a_l_u_e_s _v_i_a _l_o_c_a_l() in the
  474.       _p_e_r_l_s_u_b manpage.
  475.  
  476.       %%%%!!!! is    transparently tied to the the _E_r_r_n_o manpage module
  477.  
  478.       See the _p_e_r_l_v_a_r manpage, and the _E_r_r_n_o manpage.
  479.  
  480.       PPPPsssseeeeuuuuddddoooo----hhhhaaaasssshhhheeeessss    aaaarrrreeee ssssuuuuppppppppoooorrrrtttteeeedddd
  481.  
  482.       See the _p_e_r_l_r_e_f manpage.
  483.  
  484.       EEEEXXXXPPPPRRRR ffffoooorrrreeeeaaaacccchhhh EEEEXXXXPPPPRRRR is supported
  485.  
  486.       See the _p_e_r_l_s_y_n manpage.
  487.  
  488.       KKKKeeeeyyyywwwwoooorrrrddddssss ccccaaaannnn bbbbeeee gggglllloooobbbbaaaallllllllyyyy oooovvvveeeerrrrrrrriiiiddddddddeeeennnn
  489.  
  490.       See the _p_e_r_l_s_u_b manpage.
  491.  
  492.       $$$$^^^^EEEE is meaningful on Win32
  493.  
  494.       See the _p_e_r_l_v_a_r manpage.
  495.  
  496.       ffffoooorrrreeeeaaaacccchhhh ((((1111........1111000000000000000000000000)))) optimized
  497.  
  498.       foreach (1..1000000) is now optimized    into a counting    loop.
  499.       It does not try to allocate a    1000000-size list anymore.
  500.  
  501.       FFFFoooooooo::::::::    can be used as implicitly quoted package name
  502.  
  503.       Barewords caused unintuitive behavior    when a subroutine with
  504.       the same name    as a package happened to be defined.  Thus,
  505.       new Foo @args, use the result    of the call to Foo() instead
  506.       of Foo being treated as a literal.  The recommended way to
  507.       write    barewords in the indirect object slot is new Foo::
  508.       @args.  Note that the    method new() is    called with a first
  509.       argument of Foo, not Foo:: when you do that.
  510.  
  511.       eeeexxxxiiiissssttttssss $$$$FFFFoooooooo::::::::{{{{BBBBaaaarrrr::::::::}}}} tests existence of a package
  512.  
  513.       It was impossible to test for    the existence of a package
  514.       without actually creating it before.    Now exists
  515.       $Foo::{Bar::}    can be used to test if the Foo::Bar namespace
  516.       has been created.
  517.  
  518.       BBBBeeeetttttttteeeerrrr llllooooccccaaaalllleeee    ssssuuuuppppppppoooorrrrtttt
  519.  
  520.       See the _p_e_r_l_l_o_c_a_l_e manpage.
  521.  
  522.  
  523.  
  524.  
  525.      Page 8                        (printed 10/23/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  533.  
  534.  
  535.  
  536.       EEEExxxxppppeeeerrrriiiimmmmeeeennnnttttaaaallll ssssuuuuppppppppoooorrrrtttt ffffoooorrrr 66664444----bbbbiiiitttt ppppllllaaaattttffffoooorrrrmmmmssss
  537.  
  538.       Perl5    has always had 64-bit support on systems with 64-bit
  539.       longs.  Starting with    5.005, the beginnings of experimental
  540.       support for systems with 32-bit long and 64-bit 'long    long'
  541.       integers has been added.  If you add -DUSE_LONG_LONG to your
  542.       ccflags in config.sh (or manually define it in perl.h) then
  543.       perl will be built with 'long    long' support.    There will be
  544.       many compiler    warnings, and the resultant perl may not work
  545.       on all systems.  There are many other    issues related to
  546.       third-party extensions and libraries.     This option exists to
  547.       allow    people to work on those    issues.
  548.  
  549.       _p_r_o_t_o_t_y_p_e() returns useful results on    builtins
  550.  
  551.       See the prototype entry in the _p_e_r_l_f_u_n_c manpage.
  552.  
  553.       EEEExxxxtttteeeennnnddddeeeedddd ssssuuuuppppppppoooorrrrtttt ffffoooorrrr eeeexxxxcccceeeeppppttttiiiioooonnnn hhhhaaaannnnddddlllliiiinnnngggg
  554.  
  555.       die()    now accepts a reference    value, and $@ gets set to that
  556.       value    in exception traps.  This makes    it possible to
  557.       propagate exception objects.    This is    an undocumented
  558.       eeeexxxxppppeeeerrrriiiimmmmeeeennnnttttaaaallll feature.
  559.  
  560.       RRRReeee----bbbblllleeeessssssssiiiinnnngggg iiiinnnn _D_E_S_T_R_O_Y() supported for chaining _D_E_S_T_R_O_Y()
  561.       methods
  562.  
  563.       See the Destructors entry in the _p_e_r_l_o_b_j manpage.
  564.  
  565.       AAAAllllllll pppprrrriiiinnnnttttffff format conversions    are handled internally
  566.  
  567.       See the printf entry in the _p_e_r_l_f_u_n_c manpage.
  568.  
  569.       NNNNeeeewwww IIIINNNNIIIITTTT keyword
  570.  
  571.       INIT subs are    like BEGIN and END, but    they get run just
  572.       before the perl runtime begins execution.  e.g., the Perl
  573.       Compiler makes use of    INIT blocks to initialize and resolve
  574.       pointers to XSUBs.
  575.  
  576.       NNNNeeeewwww lllloooocccckkkk keyword
  577.  
  578.       The lock keyword is the fundamental synchronization
  579.       primitive in threaded    perl.  When threads are    not enabled,
  580.       it is    currently a noop.
  581.  
  582.       To minimize impact on    source compatibility this keyword is
  583.       "weak", i.e.,    any user-defined subroutine of the same    name
  584.       overrides it,    unless a use Thread has    been seen.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                        (printed 10/23/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  599.  
  600.  
  601.  
  602.       NNNNeeeewwww qqqqrrrr//////// operator
  603.  
  604.       The qr// operator, which is syntactically similar to the
  605.       other    quote-like operators, is used to create    precompiled
  606.       regular expressions.    This compiled form can now be
  607.       explicitly passed around in variables, and interpolated in
  608.       other    regular    expressions.  See the _p_e_r_l_o_p manpage.
  609.  
  610.       oooouuuurrrr is now a reserved    word
  611.  
  612.       Calling a subroutine with the    name our will now provoke a
  613.       warning when using the -w switch.
  614.  
  615.       TTTTiiiieeeedddd aaaarrrrrrrraaaayyyyssss aaaarrrreeee nnnnoooowwww ffffuuuullllllllyyyy ssssuuuuppppppppoooorrrrtttteeeedddd
  616.  
  617.       See the _T_i_e::_A_r_r_a_y manpage.
  618.  
  619.       TTTTiiiieeeedddd hhhhaaaannnnddddlllleeeessss ssssuuuuppppppppoooorrrrtttt iiiissss bbbbeeeetttttttteeeerrrr
  620.  
  621.       Several missing hooks    have been added.  There    is also    a new
  622.       base class for TIEARRAY implementations.  See    the _T_i_e::_A_r_r_a_y
  623.       manpage.
  624.  
  625.       4444tttthhhh aaaarrrrgggguuuummmmeeeennnntttt ttttoooo ssssuuuubbbbssssttttrrrr
  626.  
  627.       _s_u_b_s_t_r() can now both    return and replace in one operation.
  628.       The optional 4th argument is the replacement string.    See
  629.       the substr entry in the _p_e_r_l_f_u_n_c manpage.
  630.  
  631.       NNNNeeeeggggaaaattttiiiivvvveeee LLLLEEEENNNNGGGGTTTTHHHH aaaarrrrgggguuuummmmeeeennnntttt ttttoooo sssspppplllliiiicccceeee
  632.  
  633.       _s_p_l_i_c_e() with    a negative LENGTH argument now work similar to
  634.       what the LENGTH did for _s_u_b_s_t_r().  Previously    a negative
  635.       LENGTH was treated as    0.  See    the splice entry in the
  636.       _p_e_r_l_f_u_n_c manpage.
  637.  
  638.       MMMMaaaaggggiiiicccc    llllvvvvaaaalllluuuueeeessss    aaaarrrreeee nnnnoooowwww    mmmmoooorrrreeee mmmmaaaaggggiiiiccccaaaallll
  639.  
  640.       When you say something like substr($x, 5) = "hi", the    scalar
  641.       returned by _s_u_b_s_t_r() is special, in that any modifications
  642.       to it    affect $x.  (This is called a 'magic lvalue' because
  643.       an 'lvalue' is something on the left side of an assignment.)
  644.       Normally, this is exactly what you would expect to happen,
  645.       but Perl uses    the same magic if you use _s_u_b_s_t_r(), _p_o_s(), or
  646.       _v_e_c()    in a context where they    might be modified, like    taking
  647.       a reference with \ or    as an argument to a sub    that modifies
  648.       @_.  In previous versions, this 'magic' only went one    way,
  649.       but now changes to the scalar    the magic refers to ($x    in the
  650.       above    example) affect    the magic lvalue too. For instance,
  651.       this code now    acts differently:
  652.  
  653.  
  654.  
  655.  
  656.  
  657.      Page 10                        (printed 10/23/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  665.  
  666.  
  667.  
  668.           $x = "hello";
  669.           sub printit {
  670.           $x = "g'bye";
  671.           print    $_[0], "\n";
  672.           }
  673.           printit(substr($x, 0, 5));
  674.  
  675.       In previous versions,    this would print "hello", but it now
  676.       prints "g'bye".
  677.  
  678.       <<<<>>>> nnnnoooowwww rrrreeeeaaaaddddssss iiiinnnn rrrreeeeccccoooorrrrddddssss
  679.  
  680.       If $/    is a referenence to an integer,    or a scalar that holds
  681.       an integer, <> will read in records instead of lines.    For
  682.       more info, see the section on    $/ in the _p_e_r_l_v_a_r manpage.
  683.  
  684.      SSSSuuuuppppppppoooorrrrtttteeeedddd PPPPllllaaaattttffffoooorrrrmmmmssss
  685.       Configure has    many incremental improvements.    Site-wide
  686.       policy for building perl can now be made persistent, via
  687.       Policy.sh.  Configure    also records the command-line
  688.       arguments used in _c_o_n_f_i_g._s_h.
  689.  
  690.       NNNNeeeewwww PPPPllllaaaattttffffoooorrrrmmmmssss
  691.  
  692.       BeOS is now supported.  See the _R_E_A_D_M_E._b_e_o_s manpage.
  693.  
  694.       DOS is now supported under the DJGPP tools.  See the
  695.       _R_E_A_D_M_E._d_o_s manpage.
  696.  
  697.       MPE/iX is now    supported.  See    the _R_E_A_D_M_E._m_p_e_i_x manpage.
  698.  
  699.       MVS (OS390) is now supported.     See the _R_E_A_D_M_E._o_s_3_9_0 manpage.
  700.  
  701.       CCCChhhhaaaannnnggggeeeessss iiiinnnn eeeexxxxiiiissssttttiiiinnnngggg ssssuuuuppppppppoooorrrrtttt
  702.  
  703.       Win32    support    has been vastly    enhanced.  Support for Perl
  704.       Object, a C++    encapsulation of Perl.    GCC and    EGCS are now
  705.       supported on Win32.  See _R_E_A_D_M_E._w_i_n_3_2, aka the _p_e_r_l_w_i_n_3_2
  706.       manpage.
  707.  
  708.       VMS configuration system has been rewritten.    See the
  709.       _R_E_A_D_M_E._v_m_s manpage.
  710.  
  711.       The hints files for most Unix    platforms have seen
  712.       incremental improvements.
  713.  
  714.      MMMMoooodddduuuulllleeeessss aaaannnndddd PPPPrrrraaaaggggmmmmaaaattttaaaa
  715.       NNNNeeeewwww MMMMoooodddduuuulllleeeessss
  716.  
  717.       B    Perl compiler and tools.     See the section on _B.
  718.  
  719.  
  720.  
  721.  
  722.  
  723.      Page 11                        (printed 10/23/98)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  731.  
  732.  
  733.  
  734.       Data::Dumper
  735.            A module    to pretty print    Perl data.  See    the
  736.            _D_a_t_a::_D_u_m_p_e_r manpage.
  737.  
  738.       Errno
  739.            A module    to look    up errors more conveniently.  See the
  740.            _E_r_r_n_o manpage.
  741.  
  742.       File::Spec
  743.            A portable API for file operations.
  744.  
  745.       ExtUtils::Installed
  746.            Query and manage    installed modules.
  747.  
  748.       ExtUtils::Packlist
  749.            Manipulate .packlist files.
  750.  
  751.       Fatal
  752.            Make functions/builtins succeed or die.
  753.  
  754.       IPC::SysV
  755.            Constants and other support infrastructure for System V
  756.            IPC operations in perl.
  757.  
  758.       Test A framework for writing testsuites.
  759.  
  760.       Tie::Array
  761.            Base class for tied arrays.
  762.  
  763.       Tie::Handle
  764.            Base class for tied handles.
  765.  
  766.       Thread
  767.            Perl thread creation, manipulation, and support.
  768.  
  769.       attrs
  770.            Set subroutine attributes.
  771.  
  772.       fields
  773.            Compile-time class fields.
  774.  
  775.       re   Various pragmata    to control behavior of regular
  776.            expressions.
  777.  
  778.       CCCChhhhaaaannnnggggeeeessss iiiinnnn eeeexxxxiiiissssttttiiiinnnngggg mmmmoooodddduuuulllleeeessss
  779.  
  780.       CGI  CGI has been updated to version 2.42.
  781.  
  782.       POSIX
  783.            POSIX now has its own platform-specific hints files.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                        (printed 10/23/98)
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  797.  
  798.  
  799.  
  800.       DB_File
  801.            DB_File supports    version    2.x of Berkeley    DB.  See
  802.            ext/DB_File/Changes.
  803.  
  804.       MakeMaker
  805.            MakeMaker now supports writing empty makefiles,
  806.            provides    a way to specify that site _u_m_a_s_k() policy
  807.            should be honored.  There is also better    support    for
  808.            manipulation of .packlist files,    and getting
  809.            information about installed modules.
  810.  
  811.            Extensions that have both architecture-dependent    and
  812.            architecture-independent    files are now always installed
  813.            completely in the architecture-dependent    locations.
  814.            Previously, the shareable parts were shared both    across
  815.            architectures and across    perl versions and were
  816.            therefore liable    to be overwritten with newer versions
  817.            that might have subtle incompatibilities.
  818.  
  819.       CPAN See <perlmodinstall> and    the _C_P_A_N manpage.
  820.  
  821.       Cwd  Cwd::cwd    is faster on most platforms.
  822.  
  823.       Benchmark
  824.            Keeps better time.
  825.  
  826.      UUUUttttiiiilllliiiittttyyyy CCCChhhhaaaannnnggggeeeessss
  827.       h2ph and related utilities have been vastly overhauled.
  828.  
  829.       perlcc, a new    experimental front end for the compiler    is
  830.       available.
  831.  
  832.       The crude GNU    configure emulator is now called configure.gnu
  833.       to avoid trampling on    Configure under    case-insensitive
  834.       filesystems.
  835.  
  836.       perldoc used to be rather slow.  The slower features are now
  837.       optional.  In    particular, case-insensitive searches need the
  838.       -i switch, and recursive searches need -r.  You can set
  839.       these    switches in the    PERLDOC    environment variable to    get
  840.       the old behavior.
  841.  
  842.      DDDDooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn CCCChhhhaaaannnnggggeeeessss
  843.       Config.pm now    has a glossary of variables.
  844.  
  845.       _P_o_r_t_i_n_g/_p_a_t_c_h_i_n_g._p_o_d has detailed instructions on how    to
  846.       create and submit patches for    perl.
  847.  
  848.       the _p_e_r_l_p_o_r_t manpage specifies guidelines on how to write
  849.       portably.
  850.  
  851.       the _p_e_r_l_m_o_d_i_n_s_t_a_l_l manpage describes how to fetch and
  852.  
  853.  
  854.  
  855.      Page 13                        (printed 10/23/98)
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  863.  
  864.  
  865.  
  866.       install modules from CPAN sites.
  867.  
  868.       Some more Perl traps are documented now.  See    the _p_e_r_l_t_r_a_p
  869.       manpage.
  870.  
  871.      NNNNeeeewwww DDDDiiiiaaaaggggnnnnoooossssttttiiiiccccssss
  872.       Ambiguous call resolved as CORE::%s(), qualify as such or use    &
  873.            (W) A subroutine    you have declared has the same name as
  874.            a Perl keyword, and you have used the name without
  875.            qualification for calling one or    the other.  Perl
  876.            decided to call the builtin because the subroutine is
  877.            not imported.
  878.  
  879.            To force    interpretation as a subroutine call, either
  880.            put an ampersand    before the subroutine name, or qualify
  881.            the name    with its package.  Alternatively, you can
  882.            import the subroutine (or pretend that it's imported
  883.            with the    use subs pragma).
  884.  
  885.            To silently interpret it    as the Perl operator, use the
  886.            CORE:: prefix on    the operator (e.g. CORE::log($x)) or
  887.            by declaring the    subroutine to be an object method (see
  888.            the _a_t_t_r_s manpage).
  889.  
  890.       Bad index while coercing array into hash
  891.            (F) The index looked up in the hash found as the    0'th
  892.            element of a pseudo-hash    is not legal.  Index values
  893.            must be at 1 or greater.     See the _p_e_r_l_r_e_f manpage.
  894.  
  895.       Bareword "%s"    refers to nonexistent package
  896.            (W) You used a qualified    bareword of the    form Foo::,
  897.            but the compiler    saw no other uses of that namespace
  898.            before that point.  Perhaps you need to predeclare a
  899.            package?
  900.  
  901.       Can't    call method "%s" on an undefined value
  902.            (F) You used the    syntax of a method call, but the slot
  903.            filled by the object reference or package name contains
  904.            an undefined value.  Something like this    will reproduce
  905.            the error:
  906.  
  907.            $BADREF = 42;
  908.            process $BADREF 1,2,3;
  909.            $BADREF->process(1,2,3);
  910.  
  911.  
  912.       Can't    coerce array into hash
  913.            (F) You used an array where a hash was expected,    but
  914.            the array has no    information on how to map from keys to
  915.            array indices.  You can do that only with arrays    that
  916.            have a hash reference at    index 0.
  917.  
  918.  
  919.  
  920.  
  921.      Page 14                        (printed 10/23/98)
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  929.  
  930.  
  931.  
  932.       Can't    goto subroutine    from an    eval-string
  933.            (F) The "goto subroutine" call can't be used to jump
  934.            out of an eval "string".     (You can use it to jump out
  935.            of an eval {BLOCK}, but you probably don't want to.)
  936.  
  937.       Can't    localize pseudo-hash element
  938.            (F) You said something like local $ar->{'key'}, where
  939.            $ar is a    reference to a pseudo-hash.  That hasn't been
  940.            implemented yet,    but you    can get    a similar effect by
  941.            localizing the corresponding array element directly --
  942.            local $ar->[$ar->[0]{'key'}].
  943.  
  944.       Can't    use %%!    because    Errno.pm is not    available
  945.            (F) The first time the %! hash is used, perl
  946.            automatically loads the Errno.pm    module.    The Errno
  947.            module is expected to tie the %!    hash to    provide
  948.            symbolic    names for $! errno values.
  949.  
  950.       Cannot find an opnumber for "%s"
  951.            (F) A string of a form CORE::word was given to
  952.            _p_r_o_t_o_t_y_p_e(), but    there is no builtin with the name
  953.            word.
  954.  
  955.       Character class syntax [. .] is reserved for future extensions
  956.            (W) Within regular expression character classes ([])
  957.            the syntax beginning with "[." and ending with ".]" is
  958.            reserved    for future extensions.    If you need to
  959.            represent those character sequences inside a regular
  960.            expression character class, just    quote the square
  961.            brackets    with the backslash: "\[." and ".\]".
  962.  
  963.       Character class syntax [: :] is reserved for future extensions
  964.            (W) Within regular expression character classes ([])
  965.            the syntax beginning with "[:" and ending with ":]" is
  966.            reserved    for future extensions.    If you need to
  967.            represent those character sequences inside a regular
  968.            expression character class, just    quote the square
  969.            brackets    with the backslash: "\[:" and ":\]".
  970.  
  971.       Character class syntax [= =] is reserved for future extensions
  972.            (W) Within regular expression character classes ([])
  973.            the syntax beginning with "[=" and ending with "=]" is
  974.            reserved    for future extensions.    If you need to
  975.            represent those character sequences inside a regular
  976.            expression character class, just    quote the square
  977.            brackets    with the backslash: "\[=" and "=\]".
  978.  
  979.       %s: Eval-group in insecure regular expression
  980.            (F) Perl    detected tainted data when trying to compile a
  981.            regular expression that contains    the (?{    ... }) zero-
  982.            width assertion,    which is unsafe.  See the section on
  983.            (?{ _c_o_d_e    }) in the _p_e_r_l_r_e manpage, and the _p_e_r_l_s_e_c
  984.  
  985.  
  986.  
  987.      Page 15                        (printed 10/23/98)
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  995.  
  996.  
  997.  
  998.            manpage.
  999.  
  1000.       %s: Eval-group not allowed, use re 'eval'
  1001.            (F) A regular expression    contained the (?{ ... })
  1002.            zero-width assertion, but that construct    is only
  1003.            allowed when the    use re 'eval' pragma is    in effect.
  1004.            See the section on (?{ _c_o_d_e }) in the _p_e_r_l_r_e manpage.
  1005.  
  1006.       %s: Eval-group not allowed at    run time
  1007.            (F) Perl    tried to compile a regular expression
  1008.            containing the (?{ ... }) zero-width assertion at run
  1009.            time, as    it would when the pattern contains
  1010.            interpolated values.  Since that    is a security risk, it
  1011.            is not allowed.    If you insist, you may still do    this
  1012.            by explicitly building the pattern from an interpolated
  1013.            string at run time and using that in an _e_v_a_l().    See
  1014.            the section on (?{ _c_o_d_e }) in the _p_e_r_l_r_e    manpage.
  1015.  
  1016.       Explicit blessing to '' (assuming package main)
  1017.            (W) You are blessing a reference    to a zero length
  1018.            string.    This has the effect of blessing    the reference
  1019.            into the    package    main.  This is usually not what    you
  1020.            want.  Consider providing a default target package,
  1021.            e.g. _b_l_e_s_s($ref,    $p or 'MyPackage');
  1022.  
  1023.       Illegal hex digit ignored
  1024.            (W) You may have    tried to use a character other than 0
  1025.            - 9 or A    - F in a hexadecimal number.  Interpretation
  1026.            of the hexadecimal number stopped before    the illegal
  1027.            character.
  1028.  
  1029.       No such array    field
  1030.            (F) You tried to    access an array    as a hash, but the
  1031.            field name used is not defined.    The hash at index 0
  1032.            should map all valid field names    to array indices for
  1033.            that to work.
  1034.  
  1035.       No such field    "%s" in    variable %s of type %s
  1036.            (F) You tried to    access a field of a typed variable
  1037.            where the type does not know about the field name.  The
  1038.            field names are looked up in the    %FIELDS    hash in    the
  1039.            type package at compile time.  The %FIELDS hash is
  1040.            usually set up with the 'fields'    pragma.
  1041.  
  1042.       Out of memory    during ridiculously large request
  1043.            (F) You can't allocate more than    2^31+"small amount"
  1044.            bytes.  This error is most likely to be caused by a
  1045.            typo in the Perl    program. e.g., $arr[time] instead of
  1046.            $arr[$time].
  1047.  
  1048.       Range    iterator outside integer range
  1049.            (F) One (or both) of the    numeric    arguments to the range
  1050.  
  1051.  
  1052.  
  1053.      Page 16                        (printed 10/23/98)
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1061.  
  1062.  
  1063.  
  1064.            operator    ".."  are outside the range which can be
  1065.            represented by integers internally.  One    possible
  1066.            workaround is to    force Perl to use magical string
  1067.            increment by prepending "0" to your numbers.
  1068.  
  1069.      package '%s'
  1070.       Recursive inheritance    detected while looking for method '%s' in
  1071.            (F) More    than 100 levels    of inheritance were
  1072.            encountered while invoking a method.  Probably
  1073.            indicates an unintended loop in your inheritance
  1074.            hierarchy.
  1075.  
  1076.       Reference found where    even-sized list    expected
  1077.            (W) You gave a single reference where Perl was
  1078.            expecting a list    with an    even number of elements    (for
  1079.            assignment to a hash). This usually means that you used
  1080.            the anon    hash constructor when you meant    to use parens.
  1081.            In any case, a hash requires key/value ppppaaaaiiiirrrrssss.
  1082.  
  1083.            %hash = { one => 1, two => 2, };   #    WRONG
  1084.            %hash = [ qw/ an anon array / ];   #    WRONG
  1085.            %hash = ( one => 1, two => 2, );   #    right
  1086.            %hash = qw( one 1 two 2 );              #    also fine
  1087.  
  1088.  
  1089.       Undefined value assigned to typeglob
  1090.            (W) An undefined    value was assigned to a    typeglob, a la
  1091.            *foo = undef.  This does    nothing.  It's possible    that
  1092.            you really mean undef *foo.
  1093.  
  1094.       Use of reserved word "%s" is deprecated
  1095.            (D) The indicated bareword is a reserved    word.  Future
  1096.            versions    of perl    may use    it as a    keyword, so you're
  1097.            better off either explicitly quoting the    word in    a
  1098.            manner appropriate for its context of use, or using a
  1099.            different name altogether.  The warning can be
  1100.            suppressed for subroutine names by either adding    a &
  1101.            prefix, or using    a package qualifier, e.g. &our(), or
  1102.            Foo::our().
  1103.  
  1104.       perl:    warning: Setting locale    failed.
  1105.            (S) The whole warning message will look something like:
  1106.  
  1107.               perl: warning: Setting locale failed.
  1108.               perl: warning: Please check that your locale settings:
  1109.                   LC_ALL = "En_US",
  1110.                   LANG = (unset)
  1111.               are supported    and installed on your system.
  1112.               perl: warning: Falling back to the standard locale ("C").
  1113.  
  1114.            Exactly what were the failed locale settings varies.
  1115.            In the above the    settings were that the LC_ALL was
  1116.  
  1117.  
  1118.  
  1119.      Page 17                        (printed 10/23/98)
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1127.  
  1128.  
  1129.  
  1130.            "En_US" and the LANG had    no value.  This    error means
  1131.            that Perl detected that you and/or your system
  1132.            administrator have set up the so-called variable    system
  1133.            but Perl    could not use those settings.  This was    not
  1134.            dead serious, fortunately: there    is a "default locale"
  1135.            called "C" that Perl can    and will use, the script will
  1136.            be run.    Before you really fix the problem, however,
  1137.            you will    get the    same error message each    time you run
  1138.            Perl.  How to really fix    the problem can    be found in
  1139.            the _p_e_r_l_l_o_c_a_l_e manpage section LLLLOOOOCCCCAAAALLLLEEEE PPPPRRRROOOOBBBBLLLLEEEEMMMMSSSS.
  1140.  
  1141.      OOOObbbbssssoooolllleeeetttteeee DDDDiiiiaaaaggggnnnnoooossssttttiiiiccccssss
  1142.       Can't    mktemp()
  1143.            (F) The _m_k_t_e_m_p()    routine    failed for some    reason while
  1144.            trying to process a ----eeee switch.  Maybe your /tmp
  1145.            partition is full, or clobbered.
  1146.  
  1147.       Can't    write to temp file for ----eeee: %s
  1148.            (F) The write routine failed for    some reason while
  1149.            trying to process a ----eeee switch.  Maybe your /tmp
  1150.            partition is full, or clobbered.
  1151.  
  1152.       Cannot open temporary    file
  1153.            (F) The create routine failed for some reason while
  1154.            trying to process a ----eeee switch.  Maybe your /tmp
  1155.            partition is full, or clobbered.
  1156.  
  1157.      BBBBUUUUGGGGSSSS
  1158.       If you find what you think is    a bug, you might check the
  1159.       headers of recently posted articles in the
  1160.       comp.lang.perl.misc newsgroup.  There    may also be
  1161.       information at http://www.perl.com/perl/, the    Perl Home
  1162.       Page.
  1163.  
  1164.       If you believe you have an unreported    bug, please run    the
  1165.       ppppeeeerrrrllllbbbbuuuugggg program included with    your release.  Make sure you
  1166.       trim your bug    down to    a tiny but sufficient test case.  Your
  1167.       bug report, along with the output of perl -V,    will be    sent
  1168.       off to <_p_e_r_l_b_u_g@_p_e_r_l._c_o_m> to be analysed by the Perl porting
  1169.       team.
  1170.  
  1171.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1172.       The _C_h_a_n_g_e_s file for exhaustive details on what changed.
  1173.  
  1174.       The _I_N_S_T_A_L_L file for how to build Perl.
  1175.  
  1176.       The _R_E_A_D_M_E file for general stuff.
  1177.  
  1178.       The _A_r_t_i_s_t_i_c and _C_o_p_y_i_n_g files for copyright information.
  1179.  
  1180.      HHHHIIIISSSSTTTTOOOORRRRYYYY
  1181.       Written by Gurusamy Sarathy <_g_s_a_r@_u_m_i_c_h._e_d_u>,    with many
  1182.  
  1183.  
  1184.  
  1185.      Page 18                        (printed 10/23/98)
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1193.  
  1194.  
  1195.  
  1196.       contributions    from The Perl Porters.
  1197.  
  1198.       Send omissions or corrections    to <_p_e_r_l_b_u_g@_p_e_r_l._c_o_m>.
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.      Page 19                        (printed 10/23/98)
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))     1111////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222))))      PPPPEEEERRRRLLLLDDDDEEEELLLLTTTTAAAA((((1111))))
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.      Page 20                        (printed 10/23/98)
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.